<?php

namespace app\api\controller\xiluhouse;

use app\common\controller\Api;
use app\api\logic\xiluhouse\RentalRequestLogic;

/**
 * 求租信息接口
 */
class RentalRequest extends Api
{
    // 无需登录的接口,*表示全部
    protected $noNeedLogin = ['getList', 'detail'];
    // 无需鉴权的接口,*表示全部
    protected $noNeedRight = '*';

    /**
     * 新增求租信息
     *
     * @ApiMethod (POST)
     * @param string $name 用户名称
     * @param string $mobile 手机号
     * @param int $gender 性别(0=不限,1=男,2=女)
     * @param int $room_num 室数
     * @param int $ting_num 厅数
     * @param int $wei_num 卫数
     * @param string $in_time 用房时间(yyyy-mm-dd)
     * @param float $budget 租房预算(元/月)
     * @param string $address 意向区域
     * @param string $requirements 其他要求(选填,最多50字)
     */
    public function add()
    {
        $params = $this->request->post();
        $logic = new RentalRequestLogic();
        $result = $logic->add($params, $this->auth->getUser());
        return json($result);
    }

    /**
     * 修改求租信息
     *
     * @ApiMethod (POST)
     * @param int $id 求租信息ID
     * @param string $name 用户名称
     * @param string $mobile 手机号
     * @param int $gender 性别(0=不限,1=男,2=女)
     * @param int $room_num 室数
     * @param int $ting_num 厅数
     * @param int $wei_num 卫数
     * @param string $in_time 用房时间(yyyy-mm-dd)
     * @param float $budget 租房预算(元/月)
     * @param string $address 意向区域
     * @param string $requirements 其他要求(选填,最多50字)
     */
    public function edit()
    {
        $params = $this->request->post();
        $logic = new RentalRequestLogic();
        $result = $logic->edit($params, $this->auth->getUser());
        return json($result);
    }

    /**
     * 删除求租信息
     *
     * @ApiMethod (POST)
     * @param int $id 求租信息ID
     */
    public function delete()
    {
        $params = $this->request->post();
        $logic = new RentalRequestLogic();
        $result = $logic->delete($params, $this->auth->getUser());
        return json($result);
    }

    /**
     * 获取求租信息列表（所有人的）
     *
     * @ApiMethod (GET)
     * @param int $page 页码(默认1)
     * @param int $limit 每页数量(默认10)
     */
    public function getList()
    {
        $params = $this->request->get();
        $logic = new RentalRequestLogic();
        $result = $logic->getList($params);
        return json($result);
    }

    /**
     * 获取我的求租列表
     *
     * @ApiMethod (GET)
     * @param int $page 页码(默认1)
     * @param int $limit 每页数量(默认10)
     */
    public function getMyList()
    {
        $params = $this->request->get();
        $logic = new RentalRequestLogic();
        $result = $logic->getMyList($params, $this->auth->getUser());
        
        $this->success('获取成功', $result);
    }

    /**
     * 获取求租信息详情
     *
     * @ApiMethod (GET)
     * @param int $id 求租信息ID
     */
    public function detail()
    {
        $params = $this->request->get();
        $logic = new RentalRequestLogic();
        // 传入当前用户信息，未登录时为null
        $currentUser = $this->auth->isLogin() ? $this->auth->getUser() : null;
        $result = $logic->detail($params, $currentUser);
        return json($result);
    }

    /**
     * 获取求租用户联系方式
     *
     * @ApiMethod (GET)
     * @param int $id 求租信息ID
     */
    public function getContact()
    {
        $params = $this->request->get();
        $logic = new RentalRequestLogic();
        $result = $logic->getContact($params, $this->auth->getUser());
        return json($result);
    }
} 